package com.vf.admin.client.service;

import com.vf.admin.common.splitpage.SplitPageBean;
import com.vf.admin.miaodong.entity.*;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface AppGiftService {

    public List<AppGift> findList(Map<String, Object> paraMap, SplitPageBean splitPage);

    public AppGift get(Integer id);

    public void save(AppGift gift);

    public void del(Integer id);

    /**
    * 查询礼物，粉丝团礼物列表
    * @Param: [liwuguishu 礼物归属 1、普通礼物  2、粉丝团, splitPageBean]
    * @return: java.util.List<com.vf.admin.miaodong.entity.AppGift>
    * @Author: zhouyunyi
    * @Date: 2021/07/23
    * @Time: 17:16
    */
    List<AppGift> findByList(Map<String, Object> params,SplitPageBean splitPageBean);

    /**
     * 房间内送礼
     * @param str 收礼用户数组
     * @param userId 送礼人
     * @param giftmoney 送礼人消费的金额
     * @param gift 礼物
     * @param giftNum 礼物数量
     * @param room 房间
     * @return
     */
    boolean roomGift(String [] str, AppUser user, BigDecimal giftmoney, AppGift gift, AppGiftNum giftNum, AppRoom room);
    /**
     * 房间内背包送礼
     * @param str 收礼用户数组
     * @param user 送礼人
     * @param knapsack 背包
     * @param gift 礼物
     * @param giftNum 礼物数量
     * @param room 房间
     * @return
     */
    boolean beibaoRoomGift(String [] str, AppUser user, AppKnapsack knapsack, AppGift gift, AppGiftNum giftNum, AppRoom room);

    /**
     * 房间内送礼
     * @param sluser 收礼用户
     * @param user 送礼人
     * @param giftmoney 送礼人消费的金额
     * @param gift 礼物
     * @param giftNum 礼物数量
     * @return
     */
    boolean userGift(AppUser sluser, AppUser user, BigDecimal giftmoney, AppGift gift, AppGiftNum giftNum);

    boolean userGiftNum(AppUser sluser, AppUser user, BigDecimal giftmoney, AppGift gift, Integer giftNum);

    /**
     * 心动赠送礼物
     * @param sluser
     * @param user
     * @param giftmoney
     * @param gift
     * @return
     */
    boolean beckoningUserGift(AppUser sluser, AppUser user, BigDecimal giftmoney, AppGift gift);

    /**
     * 女回复男心动后领取礼物
     * @param slUserId
     * @param userId
     * @param giftId
     * @return
     */
    boolean replyBeckoningGetGift(Integer slUserId, Integer userId, Integer giftId);

    //夫妻相匹配后赠送礼物
    boolean spouseMatchUserGift(AppUser sluser, AppUser user, BigDecimal giftmoney, AppGift gift);

    /**
     * 房间内背包送礼
     * @param sluser 收礼用户
     * @param user 送礼人
     * @param knapsack 背包礼物
     * @param gift 礼物
     * @param giftNum 礼物数量
     * @return
     */
    boolean userBeibaoGift(AppUser sluser, AppUser user, AppKnapsack knapsack, AppGift gift, AppGiftNum giftNum);

    /**
     * 随机获取一种心动礼物
     * @return
     */
    AppGift getRandomGift();

    AppGift randomGift(BigDecimal diamonds);

    //获取价值最低的一个礼物
    AppGift getLowMoneyGift();

}
